package cn.com.cifi.mars.web.action.sys;

import cn.com.cifi.mars.bean.vo.price.NoticePriceCompareVo;
import cn.com.cifi.mars.bean.vo.price.PriceNewestVersion;
import cn.com.cifi.mars.bean.vo.price.PriceValueCompareVO;
import cn.com.cifi.mars.common.bean.R;
import cn.com.cifi.mars.common.constants.VersionConstant;
import cn.com.cifi.mars.entity.SysNotice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Api(tags = {"系统管理"})
@RequestMapping("/${spring.data.rest.base-path}/{apiVersion}/sys/sysNotice")
public interface ISysNoticeController {

	@ApiOperation(value = "系统待办分页列表", notes = "系统待办分页列表")
	@GetMapping(value = "page")
	public R<String> getSysNoticePage(
		@ApiParam(value = "当前第几页", required = true, defaultValue = "1") @RequestParam(value = "current") String current,
		@ApiParam(value = "每页条数", required = true, defaultValue = "2") @RequestParam(value = "pageSize") String pageSize);


	@ApiOperation(value = "手动调价", notes = "手动调价")
	@PostMapping(value = "manualPrice")
	public R<PriceNewestVersion> updateManualPrice(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
            @ApiParam(value = "待办id", required = true, defaultValue = "") @RequestParam(value = "noticeId") String noticeId);


	@ApiOperation(value = "待办消息版本对比", notes = "待办消息版本对比")
	@GetMapping(value = "noticeAgencyInfoCompareTo")
	public R<NoticePriceCompareVo> noticeAgencyInfoCompareTo(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "待办唯一值", required = true) @RequestParam(name = "noticeId") String noticeId);


	@ApiOperation(value = "根据分期id获取最新的待办信息", notes = "根据分期id获取最新的待办id,为空表示不存在待办")
	@GetMapping(value = "getSysNoticeByStageId")
	public R<List<SysNotice>> getSysNoticeByStageId(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion,
			@ApiParam(value = "分期id", required = true) @RequestParam(name = "stagesId") String stagesId);


	@ApiOperation(value = "手动检查未处理货值手动代办补录门户代办", notes = "手动检查未处理货值手动代办补录门户代办")
	@PostMapping(value = "noticeCheckSupplementPortalTodo")
	public R<String> noticeCheckSupplementPortalTodo(
			@ApiParam(value = "接口版本", required = true, defaultValue = VersionConstant.V1) @PathVariable(value = "apiVersion") String apiVersion);


}
